﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data.Linq;
using Entity;

namespace Data
{
    public class CommentaireData
    {

        /// <summary>
        /// Ajoute un commentaire sur un statut.
        /// </summary>
        /// <param name="idstatut">Le statut</param>
        /// <param name="idutilisateur">L'auteur du commentaire</param>
        /// <param name="texte">Le texte du commentaire</param>
        /// <param name="date">La date du commentaire</param>
        public static void ajouterCommentaire(int idstatut,
            int idutilisateur,
            String texte,
            DateTime date)
        {
            ModeleDataContext mdl = DataContext.Context;

            Commentaire commentaire = new Commentaire();
            commentaire.idstatut = idstatut;
            commentaire.idutilisateur = idutilisateur;
            commentaire.texte = texte;
            commentaire.date = date;

            mdl.Commentaire.InsertOnSubmit(commentaire);
            mdl.SubmitChanges();
        }

        /// <summary>
        /// Récupère tous les commentaires d'un statut.
        /// </summary>
        /// <param name="idstatut">Le statut</param>
        /// <returns>Les commentaires d'un staut, ou null si aucun commentaire</returns>
        public static List<CommentaireUtilisateur> getCommentaires(int idstatut)
        {
            ModeleDataContext mdl = DataContext.Context;

            var sql = from c in mdl.Commentaire
                      where c.idstatut == idstatut
                      select new CommentaireUtilisateur(c, c.Utilisateur);

            List<CommentaireUtilisateur> commentaires = sql.ToList();

            if (commentaires.Count > 0)
                return commentaires;
            else
                return null;
        }
    }
}
